#pragma once
#include "RCGameComponent.h"

using namespace RCDX11;
using namespace DirectX;

namespace RCDX11
{
	class RC3DGameComponent : public RCGameComponent , public IRC3DGameComponent
	{
	protected:
		XMFLOAT3 position;
		XMFLOAT3 scale;
		XMVECTOR orientation;

		XMMATRIX world;
	public:
		DECLDIR RC3DGameComponent(void);
		DECLDIR virtual ~RC3DGameComponent(void);

		DECLDIR virtual XMFLOAT3 getPosition();
		DECLDIR virtual XMFLOAT3 getScale();
		DECLDIR virtual XMVECTOR getOrientation();
		DECLDIR virtual XMMATRIX getWorld();

		DECLDIR virtual void setPosition(XMFLOAT3 newPosition);
		DECLDIR virtual void setScale(XMFLOAT3 newScale);
		DECLDIR virtual void setOrientation(XMVECTOR newOrientation);
	
		DECLDIR virtual void Translate(XMFLOAT3 distance);
		DECLDIR virtual void Rotate(XMVECTOR axis, float angle);

		DECLDIR void Update(float time);


	};
}